package com.bstek.bdf4.notice.ui.service;

import java.util.List;

import com.bstek.bdf4.notice.domain.GroupMembers;
import com.bstek.bdf4.notice.domain.Groups;
import com.bstek.dorado.data.provider.Page;

/**
 * @author Kevin Yang (mailto:kevin.yang@bstek.com)
 * @since 2017年9月11日
 */
public interface GroupService {
	
	List<String> getMemberIds(String groupId);
	
	List<Groups> loadActiveGroups(String memberId);
	
	List<Groups> loadGroups(String memberId);

	void save(List<Groups> groups);

	Groups loadActiveGroup(String groupId, String memberId);

	Groups loadPrivateLetterGroup(String memberId, String otherId);

	void loadGroupMembers(Page<GroupMembers> page, String groupId, String memberIdOrNickname);

	void freezeGroup(String groupId, String memberId);

	List<Groups> loadWithoutSystemGroups(Page<Groups> page, String memberId, String groupName);

	void exitGroup(String memberId, String groupId);

	List<Groups> loadSystemGroups(Page<Groups> page, String memberId, String groupName);

	void joinGroup(String memberId, String groupId, boolean administrator);
	
}
